// Mutual exclusion lock.
struct spinlock {
  uint locked;       // Is the lock held? 用于表示锁的状态

  // For debugging:
  char *name;        // Name of lock. 锁的名字
  struct cpu *cpu;   // The cpu holding the lock. 哪个CPU正在持有该锁（这里使用的是使用整个CPU结构进行标记）
#ifdef LAB_LOCK
  int nts;
  int n;
#endif
};

